home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-06-28 | 61.0 KB | 1,202 lines |
- Newsgroups: comp.lang.scheme,comp.lang.lisp,news.answers,comp.answers
- Path: senator-bedfellow.mit.edu!enterpoop.mit.edu!usc!math.ohio-state.edu!magnus.acs.ohio-state.edu!cis.ohio-state.edu!news.sei.cmu.edu!bb3.andrew.cmu.edu!crabapple.srv.cs.cmu.edu!mkant
- From: mkant+@cs.cmu.edu (Mark Kantrowitz)
- Subject: FAQ: Scheme Frequently Asked Questions 1/1 [Monthly posting]
- Message-ID: <scheme-faq-1.text_739958414@cs.cmu.edu>
- Followup-To: poster
- Sender: news@cs.cmu.edu (Usenet News System)
- Supersedes: <scheme-faq-1.text_737280015@cs.cmu.edu>
- Nntp-Posting-Host: a.gp.cs.cmu.edu
- Reply-To: lisp-faq@think.com
- Organization: School of Computer Science, Carnegie Mellon
- Date: Sun, 13 Jun 1993 08:00:35 GMT
- Approved: news-answers-request@MIT.Edu
- Expires: Sun, 25 Jul 1993 08:00:14 GMT
- Lines: 1184
- Xref: senator-bedfellow.mit.edu comp.lang.scheme:6985 comp.lang.lisp:10301 news.answers:9331 comp.answers:966
-
- Archive-name: scheme-faq/part1
- Last-Modified: Mon May 17 12:27:16 1993 by Mark Kantrowitz
- Version: 1.4
-
- ;;; ****************************************************************
- ;;; Answers to Frequently Asked Questions about Scheme *************
- ;;; ****************************************************************
- ;;; Written by Mark Kantrowitz and Barry Margolin
- ;;; scheme-faq-1.text -- 61243 bytes
-
- This post contains the Scheme FAQ.
-
- If you think of questions that are appropriate for this FAQ, or would
- like to improve an answer, please send email to us at lisp-faq@think.com.
-
- Note that the lisp-faq mailing list is for discussion of the content
- of the FAQ posting only. It is not the place to ask questions about Scheme;
- use either the scheme@ai.mit.edu mailing list or the comp.lang.scheme
- newsgroup (scheme@mc.lcs.mit.edu) for that. If a question appears frequently
- in one of those forums, it will get added to the FAQ list.
-
- Topics Covered:
- [1-0] What is the purpose of this newsgroup?
- [1-1] What Scheme-related discussion groups and mailing lists exist?
- [1-2] What is the difference between Scheme and Common Lisp?
- [1-3] What documentation is available on Scheme? How can I learn Scheme?
- [1-4] Where can I learn about implementing Scheme interpreters and
- compilers?
- [1-5] Free Scheme implementations.
- [1-6] Commercial Scheme implementations.
- [1-7] Standards for Scheme -- What are R4RS and IEEE P1178?
- [1-8] How do I do object-oriented programming in Scheme?
- [1-9] Repositories of Scheme Software
- [1-10] Publicly Redistributable Scheme Software
- [1-11] Where can I get an implementation of Prolog in Scheme?
- [1-12] What does SICP, SCOOPS, R4RS, CAR, CDR, ... mean?
-
- Search for \[#\] to get to question number # quickly.
-
- Recent Changes:
-
- ;;; 1.3
- ;;; 14-APR-93 mk Mods to question 1-2.
- ;;; 14-APR-93 mk Updated version of VSCM (Apr 12).
- ;;; 30-APR-93 mk Added Pertti's SCLINT (Scheme Lint).
- ;;; 3-MAY-93 mk Updated EdScheme entry.
- ;;; 6-MAY-93 mk Added entry on Tiny CLOS to 1-8.
- ;;;
- ;;; 1.4
- ;;; 13-MAY-93 mk Added entry on BIGLOO Scheme.
- ;;; 14-MAY-93 mk Clarification of Elk entry.
- ;;; 17-MAY-93 mk Updated Scheme->C entry.
- ;;; 18-MAY-93 mk Updated PCS/Geneva entry.
- ;;; 18-MAY-93 mk Updated Similix entry.
- ;;; 18-MAY-93 mk Updated SMG-SCM entry.
-
-
- Introduction:
-
- Certain questions and topics come up frequently in the various network
- discussion groups devoted to and related to Scheme. This file/article is
- an attempt to gather these questions and their answers into a convenient
- reference for Scheme programmers. It (or a reference to it) is posted
- periodically. The hope is that this will cut down on the user time and
- network bandwidth used to post, read and respond to the same questions
- over and over, as well as providing education by answering questions
- some readers may not even have thought to ask.
-
- This is not a Scheme tutorial, nor is it an exhaustive list of all Scheme
- intricacies. Scheme is a very powerful and expressive language, but with
- that power comes many complexities. This list attempts to address the
- ones that average Scheme programmers are likely to encounter. If you are
- new to Scheme, see the answer to the question "How can I learn
- Scheme?" [1-3].
-
- The latest version of this file is available via anonymous FTP from CMU
- and Thinking Machines:
-
- To obtain the file from CMU, connect by anonymous ftp to any CMU CS
- machine (e.g., ftp.cs.cmu.edu [128.2.206.173]), using username
- "anonymous" and password "name@host". The file scheme-faq-1.text
- is located in the directory
- /afs/cs.cmu.edu/user/mkant/Public/Lisp/
- [Note: You must cd to this directory in one atomic operation, as
- some of the superior directories on the path are protected from
- access by anonymous ftp.] If your site runs the Andrew File System,
- you can just cp the files directly without bothering with FTP.
-
- To obtain the files from Thinking Machines, ftp them from ftp.think.com,
- in the directory /public/think/lisp/. The file scheme-faq.text contains
- the latest version of the Scheme FAQ. In addition, specific
- versions of the FAQ are available as scheme-faq-<version>.text.
-
- We've tried to minimize the overlap with the FAQ postings to the
- comp.lang.lisp, comp.lang.clos and comp.ai newsgroups, so if you don't
- find what you're looking for here, we suggest you try the FAQs for
- those newsgroups. These FAQs should be available by anonymous ftp from
- rtfm.mit.edu [18.70.0.224] in the lisp-faq/, ai-faq/ and scheme-faq/
- subdirectories of /pub/usenet/news.answers/ or by email. For
- instructions on email retrieval, send a mail message to
- mail-server@rtfm.mit.edu with "help" and "index" on separate lines in
- the body of the message.
-
- ----------------------------------------------------------------
- Subject: [1-0] What is the purpose of this newsgroup?
-
- The newsgroup comp.lang.scheme exists for general discussion of
- topics related to the programming language Scheme. For example, possible
- topics can include (but are not necessarily limited to):
- announcements of Scheme books and products
- discussion of programs and utilities written in Scheme
- discussion of portability issues
- questions about possible bugs in Scheme implementations
- problems porting an implementation to some architecture
- Postings should be of general interest to the Scheme community. See also
- question [1-1].
-
- Questions about Common Lisp should be directed to the newsgroup
- comp.lang.lisp. Discussion of object oriented programming in Lisp to
- the newsgroup comp.lang.clos. Discussion of functional programming
- language issues in general should be directed to the newsgroup
- comp.lang.functional. Discussion of AI programs implemented in Scheme
- should sometimes be cross-posted to the newsgroup comp.ai.
-
- ----------------------------------------------------------------
- Subject: [1-1] What Scheme-related discussion groups and mailing lists exist?
-
- Before posting to any discussion group, please read the rest
- of this FAQ, to make sure your question isn't already answered.
-
- See the Lisp FAQ for a list of Lisp-related discussion groups and
- mailing lists. We list here only those newsgroups and mailing lists
- directly associated with Scheme.
-
- Newsgroups:
-
- comp.lang.scheme General Scheme-related discussion.
- This newsgroup is gatewayed to the
- scheme@mc.lcs.mit.edu mailing list.
- comp.lang.scheme.c Discussion of C-Scheme, a scheme dialect.
- This newsgroup is gatewayed to the
- info-cscheme@zurich.ai.mit.edu mailing list.
- comp.lang.lisp.x Discussion of XLISP, a dialect of Lisp, and XScheme.
- comp.lang.dylan Discussion of Dylan (see [4-6]), Apple's
- new Scheme-like programming language. Gatewayed to
- info-dylan@cambridge.apple.com.
-
- We list several mailing lists below. In general, to be added to
- a mailing list, send mail to the "-request" version of the address.
- This avoids flooding the mailing list with annoying and trivial
- administrative requests. [To subscribe to info-mcl, info-dylan, or
- other mailing lists based at cambridge.apple.com, send a message to
- majordomo@cambridge.apple.com with "subscribe <list_name>" in the
- message body. Likewise use "unsubscribe <list_name>" to cancel your
- subscription and "help" to get help.]
-
-
- General Scheme Mailing Lists:
-
- scheme@mc.lcs.mit.edu Discussion of Scheme. Gatewayed to
- the comp.lang.scheme newsgroup.
- scheme@ai.mit.edu General discussion about Scheme.
-
-
- Particular Flavors of Scheme:
-
- info-cscheme@altdorf.ai.mit.edu,
- info-cscheme@zurich.ai.mit.edu C-Scheme. Gatewayed to the
- comp.lang.scheme.c newsgroup.
-
- t-project@cs.yale.edu T, a dialect of Scheme.
-
- info-clscheme@mc.lcs.mit.edu PseudoScheme
-
- info-dylan@cambridge.apple.com Dylan
-
- ----------------------------------------------------------------
- Subject: [1-2] What is the difference between Scheme and Common Lisp?
-
- Scheme is a dialect of Lisp that stresses conceptual elegance and
- simplicity. It is specified in R4RS and IEEE standard P1178. (See
- question [1-7] for details on standards for Scheme.) Scheme is much
- smaller than Common Lisp; the specification is about 50 pages,
- compared to Common Lisp's 1300 page draft standard. (See the Lisp FAQ
- for details on standards for Common Lisp.) Advocates of Scheme often
- find it amusing that the entire Scheme standard is shorter than the
- index to Guy Steele's "Common Lisp: the Language, 2nd Edition".
-
- Scheme is often used in computer science curricula and programming
- language research, due to its ability to represent many programming
- abstractions with its simple primitives. Common Lisp is often used for
- real world programming because of its large library of utility
- functions, a standard object-oriented programming facility (CLOS), and
- a sophisticated condition handling system.
-
- See question [1-8] for information about object-oriented programming
- in Scheme.
-
- In Common Lisp, a simple program would look something like the
- following:
-
- (defun fact (n)
- (if (< n 2)
- 1
- (* n (fact (1- n)))))
-
- In Scheme, the equivalent program would like like this:
-
- (define fact
- (lambda (n)
- (if (< n 2)
- 1
- (* n (fact (- n 1))))))
-
- Experienced Lisp programmers might write this program as follows in order
- to allow it to run in constant space:
-
- (defun fact (n)
- (labels ((tail-recursive-fact (counter accumulator)
- (if (> counter n)
- accumulator
- (tail-recursive-fact (1+ counter)
- (* counter accumulator)))))
- (tail-recursive-fact 1 1)))
-
- Whereas in Scheme the same computation could be written as follows:
-
- (define fact
- (lambda (n)
- (letrec ((tail-recursive-fact
- (lambda (counter accumulator)
- (if (> counter n)
- accumulator
- (tail-recursive-fact (+ counter 1)
- (* counter accumulator))))))
- (tail-recursive-fact 1 1))))
-
- or perhaps (using IEEE named LETs):
-
- (define fact
- (lambda (n)
- (let loop ((counter n)
- (accumulator 1))
- (if (< counter 2)
- accumulator
- (loop (- counter 1)
- (* accumulator counter))))))
-
- Some Schemes allow one to use the syntax (define (fact n) ...) instead
- of (define fact (lambda (n) ...)).
-
- ----------------------------------------------------------------
- Subject: [1-3] What documentation is available on Scheme?
- How can I learn Scheme?
-
- Introductions to Scheme:
-
- 1. Harold Abelson and Gerald Jay Sussman, with Julie Sussman.
- "Structure and Interpretation of Computer Programs"
- MIT Press (Cambridge, MA) and McGraw-Hill (New York), 1985.
- 542 pages. ISBN 0-262-01077-1
- Starts off introductory, but rapidly gets into powerful
- Lisp-particular constructs, such as using closures and
- engines, building interpreters, compilers and
- object-oriented systems. Often referred to by its acronym,
- SICP, which is pronounced "Sick-Pee". MIT problem sets
- are available from the repositories, and materials from
- Gustavus Adolphus College are available from ftp.gac.edu:pub/SICP/.
-
- 2. Daniel P. Friedman and M. Felleisen.
- "The Little LISPer"
- MIT Press (Cambridge, MA), 3rd printing, 1989. ISBN 0-262-56038-0.
- Science Research Associates (Chicago), 3rd ed, 1989. 206 pages.
- Good for a quick introduction. Uses Scheme instead of
- Common Lisp. (The book uses a dialect of Scheme with
- footnotes about translating to Scheme or Common Lisp. The
- footnotes won't allow a non-expert to use Common Lisp for
- the advanced chapters because of the complexity.)
-
- 3. George Springer and Daniel P. Friedman
- "Scheme and the Art of Programming"
- MIT Press and McGraw Hill, 1990, 596 pages.
- Introduces basic concepts of programming in Scheme. Also deals
- with object oriented programming, co-routining, continuations.
- Gives numerous examples. Source code from the chapters is
- available from the nexus.yorku.ca repository in pub/scheme/lit/sap/.
-
- 4. Wolfgang Kreutzer and Bruce McKenzie
- "Programming for Artificial Intelligence:
- Methods, Tools and Applications"
- Addison-Wesley (Reading, MA), 1990. 682 pages.
- ISBN 0-201-41621-2.
- Discusses Scheme, Prolog, and Smalltalk, gives an overview of
- the history and philosophy of AI, surveys three major
- programming paradigms (procedural, declarative, and
- object-oriented), and metaphors to AI programming.
- Source code from the chapters is available from
- nexus.yorku.ca in pub/scheme/lit/ as aibook.tar.Z. Some of
- the programs will only run under MacScheme.
-
- 5. Smith, Jerry D.
- "Introduction to Scheme"
- Prentice Hall (Englewood Cliffs, NJ), 1988, 324 pages.
- Focuses on PC Scheme.
-
- 6. Michael Eisenberg
- "Programming in Scheme"
- Scientific Press (Redwood City, CA), 1988. 304 pages.
-
- 7. The Ken Dickey article, "The Scheme Programming Language", in
- COMPUTER LANGUAGES magazine, June 1992, is available from the
- Scheme Repository at nexus.yorku.ca:/pub/scheme/txt/intro.txt
- The Revised^4 Report on the Algorithmic Language Scheme is also
- available from the Scheme Repository.
-
- 8. Two articles in BYTE Magazine, February 1988, by Abelson and
- Sussman, and Clinger.
-
- 9. The Info files from the MIT Scheme implementation.
-
- 10. "Introductory Scheme" by Joseph W. Lavinus and James D. Arthur,
- <lavinus@virginia.edu>. Available from the Lisp Utilities
- Repository as schemedoc.tar.Z.
-
- General Scheme reference books include:
-
- 1. K. Dybvig
- "The Scheme programming language"
- Prentice Hall, 1987.
- Good reference for Scheme.
-
- Scheme-related periodicals include:
-
- 1. LISP Pointers.
- Published by ACM SIGPLAN six times a year. Volume 1, Number 1
- was April-May 1987.
- Subscriptions: ACM Members $12; ACM Student Members $7; Non-ACM
- members $25. Mail checks payable to the ACM to ACM Inc., PO Box
- 12115, Church Street Station, New York, NY 10249.
-
- 2. LISP and Symbolic Computation, Kluwer Academic Press. Volume 1
- was published in 1989. (jlz@lucid.com is the editor). ISSN 0892-4635.
- Subscriptions: Institutions $169; Individuals $80. Add $8 for
- air mail. Kluwer Academic Publishers, PO Box 322, 3300 AH Dordrecht,
- The Netherlands, or Kluwer Academic Publishers, PO Box 358, Accord
- Station, Hingham, MA 02018-0358.
-
- 3. Proceedings of the biannual ACM Lisp and Functional Programming
- Conference. (First one was in 1980.)
-
- 4. Proceedings of the annual Lisp Users and Vendors Conference.
-
- See also the Scheme Bibliography from the Scheme Repository
- (nexus.yorku.ca:pub/scheme/) for additional readings. A large number
- of technical reports on Scheme are now available in the text section
- (scheme/txt/).
-
- ----------------------------------------------------------------
- Subject: [1-4] Where can I learn about implementing Scheme interpreters
- and compilers?
-
- There is no single book that is really comprehensive, so you will have
- to combine reading the sources to the various free implementations
- (e.g., Gambit [Feeley] and S48 [Rees]) with bits and pieces of tech
- reports and various books.
-
- Books about Scheme implementation include:
-
- 1. John Allen
- "Anatomy of Lisp"
- McGraw-Hill, 1978. 446 pages. ISBN 0-07-001115-X
-
- 2. Samuel Kamin
- "Programming Languages, An Interpreter-Based Approach"
- Addison-Wesley, Reading, Mass., 1990. ISBN 0-201-06824-9
- Includes sources to several interpreters for Lisp-like
- languages, and a pointer to sources via anonymous ftp.
-
- 3. Sharam Hekmatpour
- "Lisp: A Portable Implementation"
- Prentice Hall, 1985. ISBN 0-13-537490-X.
- Describes a portable implementation of a small dynamic
- Lisp interpreter (including C source code).
-
- 4. Peter Henderson
- "Functional Programming: Application and Implementation"
- Prentice-Hall (Englewood Cliffs, NJ), 1980. 355 pages.
-
- 5. Peter M. Kogge
- "The Architecture of Symbolic Computers"
- McGraw-Hill, 1991. ISBN 0-07-035596-7.
- Includes sections on memory management, the SECD and
- Warren Abstract Machines, and overviews of the various
- Lisp Machine architectures.
-
- 6. Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes
- "Essentials of Programming Languages"
- MIT Press, 1992, 536 pages. ISBN 0-262-06145-7.
- Teaches fundamental concepts of programming language
- design by using small interpreters as examples. Covers
- most of the features of Scheme. Includes a discussion
- of parameter passing techniques, object oriented languages,
- and techniques for transforming interpreters to allow
- their implementation in terms of any low-level language.
- Also discusses scanners, parsers, and the derivation of
- a compiler and virtual machine from an interpreter.
- Source files available by anonymous ftp from cs.indiana.edu
- in the directory /pub/eopl (129.79.254.191) or from the
- Scheme Repository.
-
- 7. Peter Lee, editor, "Topics in Advanced Language Implementation",
- The MIT Press, Cambridge, Mass., 1991.
- Articles relevant to the implementation of functional
- programming languages.
-
- 8. Also see the proceedings of the biannual ACM Lisp and Functional
- Programming conferences, the implementation notes for CMU Common Lisp,
- Peter Norvig's book ("Paradigms of AI Programming: Case Studies
- in Common Lisp", Morgan Kaufmann, 1992. 946 pages. ISBN
- 1-55860-191-0), and SICP (Abelson & Sussman).
-
- Technical reports and journal articles about Scheme implementation include:
-
- Mitchell Wand and Daniel P. Friedman, "Compiling Lambda Expressions
- Using Continuations and Factorizations", Journal of Computer Languages
- 3(1978), 241-263.
-
- Guy Lewis Steele Jr., "Rabbit: A Compiler for Scheme", MIT AI Memo
- 474, Massachusetts Institute of Technology, Cambridge, MA, May 1978.
-
- Guy Lewis Steele Jr., "Compiler Optimization Based on Viewing LAMBDA
- as RENAME + GOTO", in "Artificial Intelligence: An MIT Perspective",
- Patrick Henry Winston and Richard Henry Brown (eds.), MIT Press,
- Cambridge, MA, 1980.
-
- Jonathan A. Rees and Norman I. Adams, "T: A Dialect of Lisp or,
- LAMBDA: The Ultimate Software Tool", Conference Record of the 1982 ACM
- Symposium on Lisp and Functional Programming, 1982, 114-122.
-
- R. Kent Dybvig, "C-Scheme", Computer Science Department Technical
- Report #149 (MS Thesis), Indiana University, Bloomington, IA, 1983.
-
- William Clinger, "The Scheme 311 compiler: An Exercise in Denotational
- Semantics", Conference Record of the 1984 ACM Symposium on Lisp and
- Functional Programming, 1984, 356-364.
-
- Guillermo J. Rozas, "Liar, an Algol-like Compiler for Scheme", S.B.
- Thesis, Department of Electrical Engineering and Computer Science,
- Massachusetts Institute of Technology, January 1984.
-
- David H. Bartley and John C. Jensen, "The Implementation of PC
- Scheme", Proceedings of the 1986 ACM Conference on Lisp and Functional
- Programming, 1986, 86-93.
-
- David Kranz, Richard Kelsey, Jonathan A. Rees, Paul Hudak, James
- Philbin and Norman I. Adams, "Orbit: An Optimizing Compiler for
- Scheme", Proceedings of the SIGPLAN Notices '86 Symposium on Compiler
- Construction, June 1986, 219-233. Published as SIGPLAN Notices 21(7),
- July 1986.
-
- Marc Feeley, "Deux Approches a' L'implantation du Language Scheme",
- M.Sc. Thesis, De'partement d'Informatique et de Recherche
- Ope'rationelle, University of Montreal, May 1986.
-
- R. Kent Dybvig, "Three Implementation Models for Scheme", Department
- of Computer Science Technical Report #87-011 (Ph.D. Dissertation),
- University of North Carolina at Chapel Hill, Chapel Hill, North
- Carolina, April 1987.
-
- William D. Clinger, Anne H. Hartheimer and Eric M. Ost,
- "Implementation Strategies for Continuations", Conference Record of
- the 1988 ACM Conference on Lisp and Functional Programming, August
- 1988, 124-131.
-
- David Kranz, "Orbit: An Optimizing Compiler for Scheme", Computer
- Science Technical report #632 (Ph.D. Dissertation), Yale University,
- 1988.
-
- Joel F. Bartlett, "SCHEME->C a Portable Scheme-to-C Compiler",
- Research Report 89/1, Dec. Western Research Laboratory, Palo Alto, CA,
- January 1989.
-
- Marc Feeley and James S. Miller, "A Parallel Virtual Machine for
- Efficient Scheme Compilation", Proceedings of the 1990 ACM Conference
- on Lisp and Functional Programming, Nice, France, June 1990.
-
- Chris Hanson, "Efficient Stack Allocation for Tail-Recursive
- Languages", Proceedings of the 1990 ACM Conference on Lisp and
- Functional Programming, Nice, France, June 1990.
-
- Robert Hieb, R. Kent Dybvig and Carl Bruggeman, "Representing Control
- in the Presence of First-Class Continuations", Proceedings of the
- SIGPLAN Notices '90 Conference on Programming Language Design and
- Implementation, White Plains, New York, June 1990, 66-77.
-
- Guillermo Rozas, "Taming the Y Operator", Proceedings of the 1992 ACM
- Conference on Lisp and Functional Programming, San Francisco, CA,
- June 1992, 226-234.
-
- Dan Teodosiu, "HARE: An Optimizing Portable Compiler for Scheme", ACM
- Sigplan Notices 26(1), January 1991.
-
- ----------------------------------------------------------------
- Subject: [1-5] Free Scheme implementations.
-
- Repositories of Scheme source code are described in the answer to
- question [1-9].
-
- Remember, when ftping compressed or compacted files (.Z, .z, .arc, .fit,
- etc.) to use binary mode for retrieving the files.
-
- Files that end with a .z suffix were compressed with the patent-free
- gzip (no relation to zip). Source for gzip is available from:
- prep.ai.mit.edu:pub/gnu/{gzip-1.0.7.shar,gzip-1.0.7.tar}
-
- Repositories of Scheme implementations:
-
- Many free Scheme implementations are available from altdorf.ai.mit.edu
- [18.43.0.246]. See also the Scheme Repository described below.
-
- The Scheme Repository contains a Scheme bibliography, copies of the
- R4RS report, sample Scheme code for a variety of purposes, several
- utilities, and most free implementations. (Implementations of Scheme
- available from the repository include elk, gambit, scm, fools, rabbit,
- s48, scheme84, scheme88, pseudo, xscheme, umb-scheme, siod, vscm, and
- pixiescheme.) The repository is maintained by Ozan S. Yigit,
- scheme@nexus.yorku.ca. The repository is accessible by anonymous ftp
- at nexus.yorku.ca [130.63.9.66] in the directory pub/scheme/.
- The repository is mirrored in INRIA, courtesy of Christian Queinnec
- [Ecole Polytechnique and INRIA-Rocquencourt], ftp.inria.fr:lang/Scheme.
- (See also [1-9] below.)
-
- Scheme implementations:
-
- PC-Scheme, free by anonymous ftp from altdorf.ai.mit.edu in the
- directory /archive/pc-scheme/. Written by Texas Instruments. Runs on
- MS-DOS 286/386 IBM PCs and compatibles. Includes an optimizing
- compiler, an emacs-like editor, inspector, debugger, performance
- testing, foreign function interface, window system and an
- object-oriented subsystem. Conforms to the Revised^3 Report on
- Scheme. Also supports the dialect used in Abelson and Sussman's SICP.
- The official commercialized implementation costs $95 and includes a
- reference manual and user's guide. Write to: Texas Instruments, 12501
- Research Boulevard, MS 2151, Austin, TX 78759 and order TI Part number
- #2537900-0001, or call 1-800-TI-PARTS and order it using your Visa or
- Mastercard. [NOTE: Ibuki announced on July 13, 1992, that it has
- purchased the rights to PC Scheme from TI and intends to make it also
- available on 486 PCs and under Windows 3.1. For more information,
- contact IBUKI, PO Box 1627, Los Altos, CA 94022, phone (415) 961-4996,
- fax (415) 961-8016, email rww@ibuki.com.] Version 3.0, the one that
- comes with the student edition, doesn't run on the 486, but the free
- upgrade (pcscm3_3.exe in altdorf) works fine, as does the full
- version 3.03.
-
- PCS/Geneva is a cleaned-up version of Texas Instrument's PC Scheme
- developed at the University of Geneva. The main extensions to PC
- Scheme are 486 support, BGI graphics, LIM-EMS pagination support, line
- editing, and assembly-level interfacing. (TI's PC Scheme gives users
- full Revised^3 support along with many primitives for DOS, Graphics
- and Text Windows. A powerful built-in optimizing compiler produces
- fast code.) The beta version of PCS/Geneva has been tested on XTs,
- ATs, AT386s and AT486s under various DOS and OS/2 versions. It
- even runs on Hewlett-Packard's HP95LX. PCS/Geneva is available free
- by anonymous ftp from
- uni2a.unige.ch:msdos/pcscheme.{doc,exe,taz} [129.194.4.31]
- or by email (uuencoded) from schemege@uni2a.unige.ch. If you ftp
- PCS/Geneva, please send mail to schemege@uni2a.unige.ch; the authors
- like to know their public and will inform you when a new release is
- available. This is also the email address for bug reports or if you
- need any kind of help. This product may be distributed freely and
- used without restrictions except for military purposes.
-
- MIT Scheme (aka C-Scheme), free by anonymous FTP from
- altdorf.ai.mit.edu in the directory pub/scheme-7.1 (for the
- architectures MC68020/30/40, HP Prevision Architecture, MIPS, VAX,
- Sparc (SunOS), Intel 386/486, and DEC Alpha). Directory scheme-7.2
- contains preliminary *alpha* versions of the next release of MIT
- C-Scheme for the MIPS and Intel 386/486 (MS-DOS, Windows 3.x and Unix)
- architectures. (The port includes Edwin, Scheme's Emacs-like editor
- and Liar, the Scheme compiler. If you acquire the alpha release
- through ftp, please send mail to info-cscheme-dos-request@zurich.ai.mit.edu
- so they know to send you updates and bug reports. Bugs in the DOS
- version should be send to bug-cscheme-dos@zurich.ai.mit.edu.) Does not
- have a convenient foreign function interface yet. FTP distribution
- includes MIT C-Scheme Reference and User manuals, as well as the
- Revised^4 Report on Scheme. Send bug reports to
- bug-cscheme@zurich.ai.mit.edu. For DOS floppy distribution requests
- (includes printed copies of manuals), send $95.00 (payable in U.S.
- funds to "Scheme Distribution") to cover costs of distribution to
- Scheme Distribution, c/o Prof. Hal Abelson, 545 Technology Sq. rm 410,
- Cambridge MA 02139, USA.
- |
- On the NeXT, MIT Scheme is available as part of the Schematik
- package, which provides an editor/front-end user interface,
- graphics, and "robotics" support for Lego and the like. Schematik is
- free and is available for anonymous ftp from ftp.gac.edu in the
- pub/next/scheme directory. Europeans can get it more locally from
- ftp.informatik.uni-muenchen.de, in the directory /pub/next/ProgLang;
- start with Schematik-1.1.5.1.README . Schematik is also apparently
- included on NeXT's "Educational Software Sampler" CD-ROM.
- |
- A preliminary unofficial port of C-Scheme to the Linux is available
- from artemide.dei.unipd.it:/linux/scheme-7.2/. Contact the author
- Matteo Frigo <athena@erato.dei.unipd.it> for more information.
-
- SCM, free by anonymous ftp from altdorf.ai.mit.edu:archive/scm/,
- prep.ai.mit.edu:pub/gnu/jacal/ or nexus.yorku.ca:pub/scheme/new/.
- Current version 4c0. Runs on Amiga, Atari-ST, MacOS, MS-DOS, OS/2,
- NOS/VE, VMS, Unix and similar systems. SCM conforms to the Revised^4
- Report on the Algorithmic Language Scheme and the IEEE P1178
- specification. Scm is written in C. ASCII and EBCDIC are supported.
- To receive an IBM PC floppy disk with the source files and MSDOS
- and 386 executables send $99 to Aubrey Jaffer, 84 Pleasant Street,
- Wakefield MA 01880, <jaffer@zurich.ai.mit.edu>.
- SLIB is a portable Scheme library which SCM uses, and is
- available as the file slib1d2.tar.Z.
- JACAL is a symbolic math system written in Scheme, and is
- available as the file jacal1a1.tar.Z.
- TURTLSCM is a turtle graphics package which works with SCM on
- MSDOS or X11 machines. Written by Mkinen Sami <sjm@cc.tut.fi>, it
- is available as the file turtlegr.tar.Z.
- XSCM is an interface to Xlib and the Motif and OpenLook toolkits
- for the SCM interpreter. It requires scm4a10 or later. It should be
- available at any archive of alt.sources, or on altdorf, prep and
- nexus as the file xscm1.05.tar.Z.
- Contact campbell@redsox.bsw.com for more information.
- SMG-SCM is a package that adds VMS SMG screen management routines
- to SCM. It is available from altdorf, prep and nexus as the file
- sgm-scm2a1.zip. (A VMS version of Unzip is available by anonymous
- FTP from ftp.spc.edu:[ANONYMOUS.MACRO32]UNZIP.EXE.) This file
- contains the source code, documentation, and example code. Send
- comments and bugs to T. Kurt Bond, <tkb@mtnet2.wvnet.edu> (preferred)
- or <Kurt.Bond@launchpad.unc.edu>.
-
- Hobbit is a Scheme-to-C compiler that works with the SCM Scheme
- interpreter. It treats SCM as a C library and integrates compiled
- functions into SCM as new primitives. Hobbit release 2 works with SCM
- release 4b4. Future releases of SCM and Hobbit will be coordinated.
- Hobbit imposes strong restrictions on the higher-order features of
- Scheme. For example, it does not support continuations. The main aim
- of hobbit is to produce maximally fast C programs which would retain
- most of the original Scheme program structure, making the output C
- program readable and modifiable. Hobbit is written in Scheme and is
- able to self-compile. Hobbit can be obtained via anonymous ftp from
- altdorf.ai.mit.edu:archive/scm/hobbit2.tar.Z
- prep.ai.mit.edu:pub/gnu/jacal/hobbit2.tar.Z
- nexus.yorku.ca:pub/scheme/new/hobbit2.tar.Z
- For further information, contact the author, Tanel Tammet, at
- <tammet@cs.chalmers.se> or at Tanel Tammet, Department of Computer
- Sciences, Chalmers University of Technology, S-41296 Go"teborg, Sweden.
-
- Gambit is an optimizing Scheme compiler/system. It conforms to the
- IEEE-Scheme standard (IEEE P1178) and the Revised^4 Report on Scheme
- (R4RS). The system supports the whole numeric tower (i.e. integer,
- rational, real and complex numbers). It also has several extensions to
- the standards including: weak pairs, string ports, property lists,
- futures, pretty printer, debugger, compiler and multitasking. Gambit
- runs on M680x0 based machines only (including Sun3, Apollo,
- HP9000/3xx, BBN GP1000 multiprocessor, Amiga, NeXT, and the Apple
- Macintosh). The latest version for UNIX based machines (including the
- Macintosh running A/UX) is release 1.9. The latest version for the Mac
- running the normal System/Finder is MacGambit release 1.9.1. The
- distribution contains the interpreter and optimizing native code
- compiler and all the sources required to build the system (the sources
- for MacGambit are for THINK-C 5.0). MacGambit's specific features
- include: a Scheme interface to several Toolbox routines (mostly
- QuickDraw), a drawing window for simple graphics, an online help
- system containing R4RS and a Scheme oriented editor with an emacs
- compatibility mode. Gambit Scheme is available by anonymous ftp from
- trex.iro.umontreal.ca [132.204.36.34] in the directory pub/gambit/.
- Versions 1.7, 1.7.1, 1.8.2, 1.9.1 and 2.0 may be found in this
- directory. Version 2.0 is in the files gambit20.tar.Z (Unix source),
- macgambit-2.0-interpreter.hqx (MacGambit interpreter),
- macgambit-2.0-sources1.hqx (sources needed to build the interpreter
- using Think-C 5.0), and macgambit-2.0-sources2.hqx (Scheme source
- files for runtime and compiler, and DEC's Thomas interpreter).
- Copies may also be found in the Scheme Repository on
- nexus.yorku.ca:pub/scheme/imp/, but the most recent version will
- always be available from trex.iro.umontreal.ca. MacGambit may also be
- obtained from the directory
- /afs/umich.edu/group/itd/archive/mac/development/languages/
- if your site runs the Andrew File System, or by anonymous ftp from
- mac.archive.umich.edu. For more information about Gambit, send email
- to gambit@trex.iro.umontreal.ca. Gambit Scheme was written by Marc
- Feeley <feeley@iro.umontreal.ca>. Gambit for UNIX and MacGambit are
- copyright 1992, Universite de Montreal. The programs may be
- distributed to others as long as they are not sold or transferred for
- compensation (other than a reasonable duplication fee).
-
- T3.1 is a Scheme-like language developed at Yale. Available by
- anonymous ftp from ftp.ai.mit.edu in the directory pub/systems/t3.1.
- (T may be obtained in Europe from nic.funet.fi in the directory
- pub/unix/languages/scheme/t3.1 or from ftp.diku.dk in the directory
- pub/t3.1) Runs on DecStations (MIPS processor) and SGI Iris, Sun4
- (SPARC), Sun3, Vax/Unix. Includes a copy of the online version of the
- T manual and release notes for T3.0 and T3.1. All implementations
- include a foreign function (C) interface. To be informed of fixes, new
- releases, etc., send your email address to t-project@cs.yale.edu. Bug
- reports should go to t3-bugs@cs.yale.edu. A multiprocessing version of
- T (for Encore Multimax) is available from masala.lcs.mit.edu:/pub/mult.
-
- Oaklisp is an seamless integration of Scheme with an object-oriented
- substrate. Available by anonymous ftp from f.gp.cs.cmu.edu
- [128.2.250.164] in the directory /usr/bap/oak/ftpable, or from
- ftp.cs.cmu.edu in /afs/cs.cmu.edu/user/bap/oak/ftpable, and includes
- reference and implementation manuals. Written by Barak Pearlmutter
- <bap@cse.ogi.edu> and Kevin Lang <kevin@research.nj.nec.com>.
-
- Elk (Extension Language Kit) is a Scheme interpreter designed to be
- used as a general extension language for C. It includes dynamic
- linking of C object files and an optional foreign function interface.
- Available by anonymous ftp from the Scheme Repository in
- nexus.yorku.ca:/pub/scheme/imp/. Also available in the X contrib
- directory on export.lcs.mit.edu and from tub.cs.tu-berlin.de in
- pub/elk as elk-2.0.tar.Z. Runs on Unix, SunOs, and Ultrix based
- platforms, including VAX, Sun3, Sun4 (Sparc), 680x0, 80386, MIPS, IBM
- RT, IBM RS/6000, HP9000/700, SGI, and Sony NEWS. The Elk interpreter
- is mostly R3RS compatible. Elk has interfaces to Xlib, Xt and the
- various widget sets. Implemented by Oliver Laumann.
-
- Scheme->C is an R4RS compliant Scheme system that is centered around
- a compiler that compiles Scheme to C. Besides the base language,
- the system includes "expansion passing style" macros, a foreign function
- call capability, records, weak pointers, 3 X11 interfaces, and a
- generational, conservative, copying garbage collector. The result is a
- system that is portable, efficient, and able to build applications that
- contain a mix of compiled and interpreted Scheme, and compiled code
- from C, C++ and other languages. The current release of Scheme->C runs
- on the following systems: Digital Alpha AXP systems with OSF/1, MIPS
- based DECstations, VAXen with ULTRIX, MIPS based SGI systems, PC's
- running Microsoft Windows 3.1, Apple Macintosh's running system 7.1,
- HP 9000/300, HP 9000/700, Sony News, Harris Nighthawk and other m88k
- systems, linux, and Sun SPARC. Earlier releases also run on Sun3,
- DNx500, DN1000, 386's running Unix, DNx500, and DN1000 systems. The
- software is available for anonymous ftp from gatekeeper.dec.com
- [16.1.0.2] from the directory pub/DEC/Scheme-to-C. There are three
- interfaces to X11, all written in Scheme, available from gatekeeper.
- The first is a complete set of stubs to Xlib included in the base
- system. The second is an alternative to Xlib called SCIX, found in
- pub/X11/contrib. The third, ezd, allows programs to easily produce
- interactive, structured graphics and is found in pub/DEC/ezd. Those
- without ftp access can also obtain Scheme->C and ezd from the Prime Time
- Freeware CD, Vol. 1, No. 2. Additional information is available from
- the author at Digital Equipment Corporation's Western Research Lab:
- Joel Bartlett, bartlett@decwrl.dec.com.
-
- SIOD (Scheme in One Defun), free by anonymous ftp from
- nexus.yorku.ca:pub/scheme/imp/siod-v2.9-shar
- world.std.com:src/lisp/siod-v2.9-shar
- or in any comp.sources.unix archive. Runs on VAX/VMS, VAX UNIX, Sun3,
- Sun4, Amiga, Macintosh, MIPS, Cray. Small scheme implementation in C
- arranged as a set of subroutines that can be called from any main
- program for the purpose of introducing an interpreted extension
- language. Compiles to ~20K bytes of executable. Lisp calls C and C
- calls Lisp transparently. Written by George Carrette <gjc@paradigm.com>.
-
- XScheme is available free by anonymous ftp from ftp.uu.net in the
- directories MSDOS/languages/X-scheme and amiga-sources/xscheme.20.zoo.
- It includes an object system and is R3RS compliant.
- It was written by David Michael Betz, 167 Villa Avenue #11, Los Gatos,
- CA 95032, 408-354-9303 (H), 408-862-6325 (W), dbetz@apple.com.
- XScheme is discussed in the newsgroup comp.lang.lisp.x. It may also
- be found in the Scheme Repository.
-
- Fools' Lisp is a small Scheme interpreter that is R4RS conformant, and
- is available by anonymous ftp from scam.berkeley.edu [128.32.138.1] in
- the directory src/local/fools.tar.Z. Runs on Sun3 and Sun4 (SunOs),
- DecStation 3100s, Vax (Ultrix), Sequent, and Apollo. Implemented by
- Jonathan Lee <jonathan@scam.berkeley.edu>.
-
- Scheme48. The entry on Scheme48 has been temporarily removed, per
- Jonathan Rees, 11/25/92. Scheme48 was an alpha release, and it was not
- possible for a general user to reconstruct the system from sources.
- When the distribution is complete we will restore the Scheme48 blurb.
-
- UMB Scheme is a R4RS Scheme available by anonymous ftp from
- ftp.cs.umb.edu in pub/scheme/umb-scheme-2.10.tar.Z and also in the Scheme
- Repository. It includes a simple editor, debugger, Written by William
- Campbell, University of Massachusetts at Boston, bill@cs.umb.edu.
-
- VSCM is a R4RS Scheme available by anonymous ftp from the Scheme Repository,
- nexus.yorku.ca:pub/scheme/imp/vscmIIApr12.tar.Z [130.63.9.66]
- Written by Matthias Blume, <blume@cs.princeton.edu>. The
- implementation is based on a virtual machine design with heavy support
- for most of the sophisticated features of Scheme. The virtual machine
- is written in ANSI-C to aid in its portability.
-
- Pixie Scheme for the Macintosh is a nearly complete implementation of
- R3RS available by anonymous ftp from
- rascal.ics.utexas.edu:/misc/mac/programming/
- Pixie.Goodies.SIT.bin
- Pixie.NoFPP.world.SIT.bin
- Pixie.world.SIT.bin
- PixieScheme.NoFPP.SIT.bin ; for macs without floating-point coprocessor
- PixieScheme.SIT.bin ; for macs with FPP
- Pixie_Scheme_Help.SIT.bin
- Pixie_intro
- Written by Jay Reynolds Freeman <freeman@MasPar.COM>, P. O. Box 60628,
- Palo Alto, CA, 94306-0628. A copy may also be obtained from
- /afs/umich.edu/group/itd/archive/mac/development/languages
- as the file pixiescheme.cpt.hqx if your site runs the Andrew File System,
- or by anonymous ftp from mac.archive.umich.edu.
-
- HELP (a lazy Scheme) is available by anonymous ftp from
- sumex-aim.stanford.edu:/info-mac/lang/lazy-scheme.hqx. Written by
- Thomas Schiex (schiex@cert.fr, schiex@irit.fr). Help is a complete and
- efficient Scheme-like functional lazy Lisp interpreter. It works only
- on 68020 (or more) based Macintoshes. It has a 'friendly' interface
- (parenthesis matcher, auto-indent), uses a full call-by-need semantics
- and includes many examples, including a symbolic compiler for the
- 680x0. Efficiency is good and lazyness is fully parametrizable (you
- may turn Help into a strict Scheme-like language if you like). French
- AND English updated docs are included in Word4 and plain text formats.
-
- Similix is a Self-Applicable Partial Evaluator for a Subset of Scheme.
- Written by Anders Bondorf, Olivier Danvy, and Jesper J{\o}rgensen. It
- is available by anonymous ftp from nexus.yorku.ca:/pub/scheme/imp/ as
- similix.tar.Z or from ftp.diku.dk:pub/diku/dists/Similix.tar.Z. For more
- information, contact Anders Bondorf, DIKU, Department of Computer
- Science, University of Copenhagen, Universitetsparken 1, DK-2100
- Copenhagen, Denmark, or send email to anders@diku.dk. Similix conforms
- to the IEEE and R4RS standards, but also runs under R3RS Scheme. It
- runs in SCM, Chez Scheme and T3.1.
-
- FDU Scheme is a R3RS implementation of Scheme for the Prime
- 50-series under Primos. It is available by anonymous ftp from
- fdumad.fdu.edu [132.238.1.1] (username "anonymous", password
- <RETURN>). Attach to the Scheme subdirectory (cd '*>scheme') and
- transfer all files in it and its subdirectories using file type
- binary. For more information, contact Peter Falley,
- <falley@fdumad.fdu.edu>.
-
- BIGLOO is a Scheme interpreter and compiler. It conforms to the
- IEEE-Scheme standard (IEEE P1178) with some extensions, such as
- regular expression parsing (RGC) and a pattern matching compiler. The
- main goal of Bigloo is to deliver small and fast stand alone
- applications. Bigloo produces ANSI C and hence should be easy to
- port. It runs on Sparc (1, 2, 10), SONY-NEWS (MIPS R3000), IRIS Indigo
- (MIPS R3000), PC-486 (linux), and HP-PA (730). It is available by
- anonymous ftp from ftp.inria.fr:/INRIA/icsla/bigloo1.2.tar.Z. For further
- information, send email to Manuel.Serrano@inria.fr, or write to
- Manuel Serrano (equipe ICSLA, Bat 8), INRIA-Rocquencourt, BP 105,
- 78153, Le Chesnay CEDEX, FRANCE, or call 39-63-57-32.
-
- Free Scheme Implementations implemented in Lisp:
-
- Peter Norvig's book "Paradigms of AI Programming" has a chapters about
- Scheme interpreters and compilers, both written in Common Lisp. The
- software from the book is available by anonymous ftp from
- unix.sri.com:pub/norvig and on disk in Macintosh or DOS format from
- the publisher, Morgan Kaufmann. For more information, contact: Morgan
- Kaufmann, Dept. P1, 2929 Campus Drive, Suite 260, San Mateo CA 94403,
- or call Toll free tel: (800) 745-7323; FAX: (415) 578-0672
-
- PseudoScheme is available free by anonymous ftp from
- altdorf.ai.mit.edu:/archive/pseudo/pseudo-2-8.tar.Z. It is Scheme
- implemented on top of Common Lisp, and runs in Lucid, Symbolics CL,
- VAX Lisp under VMS, and Explorer CL. It should be easy to port to
- other Lisps. It was written by Jonathan Rees (jar@altdorf.ai.mit.edu,
- jar@cs.cornell.edu). Send mail to info-clscheme-request@mc.lcs.mit.edu
- to be put on a mailing list for announcements. Conforms to R3RS except
- for lacking a correct implementation of call/cc. It works by running
- the Scheme code through a preprocessor, which generates Common Lisp code.
-
- Scheme84 is in the public domain, and available by mail from Indiana
- University. It runs on the VAX in Franz Lisp under either VMS or BSD Unix.
- To receive a copy, send a tape and return postage to: Scheme84
- Distribution, Nancy Garrett, c/o Dan Friedman, Department of Computer
- Science, Indiana University, Bloomington, Indiana. Call 1-812-335-9770
- or send mail to nlg@indiana.edu for more information.
-
- Scheme88 is available by anonymous ftp from rice.edu:public/scheme88.sh
- and also from the Scheme Repository.
-
- ----------------------------------------------------------------
- Subject: [1-6] Commercial Scheme implementations.
-
- Chez Scheme is fully compatible with the IEEE and R4RS standards for the
- Scheme programming language and includes an incremental compiler, object
- inspector, multitasking with engines, and a foreign function interface. It
- runs on Sparc and Sun3 (SunOs), Vax and DecStation (Ultrix), NeXT, Silicon
- Graphics, and Motorola Delta 88000, costs approximately $2000 and requires
- 4-8mb RAM. Implemented by Kent Dybvig, Robert Hieb, and Carl Bruggeman.
- Write to: Cadence Research Systems, 620 Park Ridge Road, Bloomington, IN
- 47408, call (812) 333-9269, or fax (812) 332-4688.
- email: dyb@cs.indiana.edu or dyb@cadence.bloomington.in.us
-
- MacScheme is a Scheme interpreter and compiler for the Apple Macintosh, and
- includes an editor, debugger and object system. MacScheme costs $125
- (includes compiler) and Scheme Express costs $70 (interpreter only). It
- requires 1mb RAM. A development environment (MacScheme+Toolsmith) costs
- $495. Conforms to the Revised^4 Report on the Algorithmic Language Scheme.
- MacScheme+Toolsmith includes support for menus, windows, and interfaces to
- the Macintosh Toolbox, and can create small standalone Macintosh
- executables. Implemented by Will Clinger, John Ulrich, Liz Heller and Eric
- Ost. Write to: Lightship Software, PO Box 1636, Beaverton, OR 97075, or
- call (503) 292-8765. They're moving to California. The temporary phone
- number is 415-940-4008 (Liz Heller). The new phone number will be
- 415-694-7799. MacScheme is distributed by ACS, 2015 East 3300
- South, Salt Lake City, UT 84109-2630, 1-800-531-3227 (801-484-3923).
-
- EdScheme runs on Macintosh, DOS and Atari ST and costs $50. It
- includes an incremental compiler, editor, and turtle graphics
- interface, and is a close match to the IEEE standard. Implemented by
- Iain Ferguson, Edward Martin, and Burt Kaufman. The book (The
- Schemer's Guide) is 328 pages long costs $30. Write to: Schemers
- Inc., 2136 NE 68th Street, Suite 401, Fort Lauderdale, FL 33308, call
- (305) 776-7376, or fax (305) 776-6174. You can also send email to
- 71020.1774@compuserve.com. They also offer an Archimedes (Acorn)
- platform which is only available through their European distributor,
- Lambda Publications, who is reachable by phone at 44-793-695296 or by
- EMail on 100015.1465@compuserve.com.
-
- ----------------------------------------------------------------
- Subject: [1-7] Standards for Scheme -- What are R4RS and IEEE P1178?
-
- R4RS is the Revised^4 Report on the Algorithmic Language Scheme,
- edited by W. Clinger and J. Rees. It appeared in ACM Lisp Pointers IV,
- July-September 1991, and also as MIT AI Memo 848b. It serves as a kind
- of standard for the language. It can be obtained by anonymous ftp at
- the two Scheme Repositories, altdorf.ai.mit.edu and nexus.yorku.ca.
-
- IEEE P1178 is IEEE Standard 1178-1990, "IEEE Standard for the Scheme
- Programming Language", published by IEEE in 1991. ISBN 1-55937-125-0.
- It is now also an ANSI standard. It may be ordered from IEEE by
- calling 1-800-678-IEEE or 908-981-1393 or writing IEEE Service
- Center, 445 Hoes Lane, P.O. Box 1331, Piscataway, NJ 08855-1331,
- and using order number SH14209 ($28 for IEEE members, $40 others).
-
- ----------------------------------------------------------------
- Subject: [1-8] How do I do object-oriented programming in Scheme?
-
- Some Scheme implementations (for example, MacScheme, Feel, Oaklisp, XScheme,
- and PC-Scheme) include built-in object-oriented extensions.
-
- SCOOPS (Scheme Object Oriented Programming System) is an object system
- for Scheme written by Amitabh Srivastava/Texas Instruments with
- re-writes by Steve Sherin <sherin@linc.cis.upenn.edu>. This package
- needs first-class environments. It is available from the Scheme
- Repository as /pub/scheme/scm/scoops.sha.
-
- MEROON is a package written in Scheme to provide the basic facilities
- of an object-oriented programming style through three macros:
- define-class, define-generic, and define-method. MEROON offers simple
- inheritance, reflective metaclasses and simple dispatching generic
- functions. MEROON also offers indexed fields subsuming Scheme vectors
- without inheritance restrictions. Meroon runs in Scheme->C, PC-Scheme,
- Chez Scheme, Elk, Gambit. MEROON sources and documentation may be
- found in the Scheme Repository as
- nexus.yorku.ca:pub/scheme/new/meroon.*.tar.Z
- and also from
- ftp.inria.fr:pub/INRIA/icsla/meroon*.tar.Z. [128.93.1.26]
-
- YASOS (Yet Another Scheme Object System) is fairly functional in style
- and uses delegation. The implementation includes multiple inheritance
- and "send to super" and is much smaller than class-based OO systems.
- See Ken Dickey, "Scheming with Objects", AI Expert 7(10):24-33,
- October 1992. A copy of the article and YASOS code is available from
- the Scheme Repository in /pub/scheme/txt/swob.txt. YASOS is also
- included as part of SLIB. For further information, contact Ken Dickey
- <kend@newton.apple.com>.
-
- Tiny CLOS is a Scheme implementation of a `kernelized' CLOS, with a
- metaobject protocol. The implementation is even simpler than the
- simple CLOS found in `The Art of the Metaobject Protocol,' weighing in
- at around 850 lines of code, including (some) comments and
- documentation. Tiny CLOS is available by anonymous ftp from
- parcftp.xerox.com:/pub/mops/. Tiny CLOS runs in MIT Scheme 11.74 and
- should run with only minor modifications in other Schemes as well. If
- you want to be added to the mops@parc.xerox.com mailing list
- (technical questions and discussion only), send mail to Gregor Kiczales
- <gregor@parc.xerox.com>.
-
- ----------------------------------------------------------------
- Subject: [1-9] Repositories of Scheme Software
-
- There are several repositories of publicly redistributable and
- public domain Scheme code.
-
- The Scheme Repository contains a Scheme bibliography, copies of the
- R4RS report, IEEE P1178 specification and other papers, sample Scheme
- code for a variety of purposes, several utilities, and some
- implementations. The Scheme code includes code for calendar
- calculations, Earley parser, FORMAT for Scheme, a scheme version of
- the Gabriel benchmarks, Marc Feeley's minimal object support for
- Scheme, a Scheme pretty-printer, a Prolog interpreter written in
- Scheme, a random number generator in Scheme, an implementation of
- SCOOPS, code from Abelson and Sussman's SICP book, Aubrey Jaffer's
- IEEE/R^3.99RS compliance test, an implementation of matrices, a Scheme
- implementation of the Common Lisp FORMAT function, a Scheme front
- end to Adobe Illustrator PostScript, and a LALR(1) parser (ZEBU).
- The repository is maintained by Ozan S. Yigit, <scheme@nexus.yorku.ca>.
- The repository is accessible by anonymous ftp at nexus.yorku.ca
- [130.63.9.66] in the directory pub/scheme/. The repository is
- mirrored in INRIA, courtesy of Christian Queinnec [Ecole Polytechnique
- and INRIA-Rocquencourt], ftp.inria.fr:lang/Scheme.
-
- Scheme Implementations may also be found at altdorf.ai.mit.edu:/archive/
- The R4RS report is available in altdorf.ai.mit.edu:/archive/scheme-reports/
- or as MIT AI Memo 848b (email publications@ai.mit.edu for more information).
- The altdorf archive includes SCOOPS, CL2Scheme, extend-syntax,
- btree, Gabriel benchmarks, FORMAT for Scheme, etc.
-
- ----------------------------------------------------------------
- Subject: [1-10] Publicly Redistributable Scheme Software
-
- SLIB is a portable scheme library that provides compatibility and
- utility functions for many of the standard scheme implementations,
- including Chez, ELK 1.5, GAMBIT, MITScheme, scheme->C, Scheme48,
- T3.1 and Scm4b. It is available by anonymous ftp from
- altdorf.ai.mit.edu:archive/scm/slib1d0.tar.Z
- prep.ai.mit.edu:pub/gnu/jacal/slib1d0.tar.Z
- nexus.yorku.ca:pub/scheme/new/slib1d0.tar.Z
-
- TEST.SCM is an IEEE and R4RS conformance test suite. It is available
- from
- altdorf.ai.mit.edu:archive/scm/test.scm
- prep.ai.mit.edu:pub/gnu/jacal/test.scm
- nexus.yorku.ca:pub/scheme/new/test.scm
-
- PSD (Portable Scheme Debugger) is available by anonymous ftp
- from Tampere University of Technology, Finland,
- cs.tut.fi:/pub/src/languages/schemes/psd.tar.Z
- With PSD, you can run a Scheme program in an Emacs buffer, set
- breakpoints, single step evaluation and access and modify the
- program's variables. It works by instrumenting the original source
- code, so it should run with any R4RS compliant Scheme. It has been
- tested with SCM and Elk 1.5, but should work with other Schemes with a
- minimal amount of porting, if at all. Includes documentation and
- user's manual. Written by Pertti Kellom\"aki, pk@cs.tut.fi
-
- SCLINT is a lint-like program for Scheme. It checks for consistency of
- indentation, syntax of special forms, and the number of arguments to
- primitive and most user-defined procedures. This is not a full
- implementation, but rather a quick hack. It is used in teaching
- programming at the Tampere University of Technology. It is available
- by anonymous ftp from cs.tut.fi:/pub/src/languages/schemes/sclint-0.9.tar.Z.
- For further information, write to Pertti Kellom\"aki <pk@cs.tut.fi>.
-
- A bibliography of work in functional programming can be obtained by
- anonymous ftp from tamdhu.dcs.st-andrews.ac.uk:/pub/staple/pubs.txt
- (138.251.192.40). It uses a refer-like format with %T for title, %A
- for authors %I for a unique index entry %S for source (possibly a
- reference to another index) %K for keywords and %C for comments.
- Compiled by Tony Davie, <ajtd@honey.st-and.ac.uk>.
-
- Scheme Utilities -- brokaw.lcs.mit.edu:/pub/scmutils.tar 18.30.0.33
- [This collection seems to no longer be located on brokaw -- does
- anybody know the current location?]
-
- A collection of Scheme implementations of data structures and
- algorithms is available by anonymous ftp from cs.tut.fi in the
- directory /pub/src/languages/schemes/as the file scheme-algorithms.tar.
- For more information, contact Pertti Kellom\"aki <pk@cs.tut.fi>.
-
- 6.001. The User's Manual, example code, and problem sets from MIT's
- course "Structure and Interpretation of Computer Programs" are
- available by anonymous ftp from martigny.ai.mit.edu:archive/6.001/
- [18.43.0.152].
-
- Steele's Constraint System. Chris Hanson's implementation of Steele's
- constraint system is available for anonymous ftp from
- martigny.ai.mit.edu:archive/cph/constraint.tar [18.43.0.152]
- nexus.yorku.ca:pub/scheme/new/constraint.tar.Z
- A compressed version is also stored there. The software is source code
- for MIT Scheme. It should run in release 7.1.3. Most of the MIT Scheme
- dependencies could be eliminated, but it also uses the following
- procedures which aren't in standard Scheme: error, bkpt, macros,
- dynamic binding, and string output ports. The code corresponds pretty
- closely to Guy Steele's PhD thesis implementation, which you can
- obtain in printed form from the MIT AI Lab publications office as
- AI-TR-595 for $15.00 (email publications@ai.mit.edu for more
- information). For more information, send email to Chris Hanson
- <cph@martigny.ai.mit.edu>.
-
- JACAL is a symbolic mathematics system for the simplification and
- manipulation of equations and single and multiple valued algebraic
- expressions constructed of numbers, variables, radicals, and algebraic
- functions, differential, and holonomic functions. In addition, vectors
- and matrices of the above objects are included. JACAL is written in
- Scheme and requires SLIB. JACAL source is available via anonymous FTP
- from
- altdorf.ai.mit.edu:archive/scm/jacal1a0.tar.Z,
- prep.ai.mit.edu:pub/gnu/jacal/jacal1a0.tar.Z, and
- nexus.yorku.ca:pub/scheme/new/jacal1a0.tar.Z
- Contact jaffer@altdorf.ai.mit.edu for more information.
-
- Zebu 0.9 is an LALR(1) parser generator for Scheme written by
- William M. Wells III. It lives in the Scheme Repository nexus.yorku.ca
- in the scm directory and works with PC-Scheme from TI and MIT C-Scheme 6.2
- (but not with anything after 7.0).
-
- Thomas is a compiler for the Dylan programming language. The Thomas
- system is written in Scheme and runs under MIT's CScheme, DEC's
- Scheme->C, and Marc Feeley's Gambit. It can run on a wide range of
- machines including the Macintosh, PC compatibles, Vax, MIPS, Alpha,
- and 680x0. Thomas generates IEEE compatible Scheme code. Thomas is
- available to the public by anonymous ftp at
- crl.dec.com:pub/DEC/Thomas
- gatekeeper.pa.dec.com:pub/DEC/Thomas
- altdorf.ai.mit.edu:archive/Thomas
- For more information on Thomas and Dylan, see part 4 of the Lisp FAQ.
-
- MATCH is a pattern matching macro package for Scheme. Pattern
- matching allows complicated control decisions based on data structure
- to be expressed in a concise manner. This document describes several
- pattern matching macros for Scheme, and an associated mechanism for
- defining new forms of structured data. At present, this macro package
- works only with Chez Scheme (release 4 or greater), but adapting it to
- other Scheme systems should be easy. MATCH is available by anonymous
- ftp from titan.cs.rice.edu:public/wright/match.tar.Z [128.42.1.30]
- and includes the macro source code and documentation. A copy should be
- available from the Scheme repository shortly. For further information,
- write to Andrew Wright, <wright@cs.rice.edu>.
-
- ----------------------------------------------------------------
- Subject: [6-6] Formatting code in LaTeX
-
- SLaTeX is a R4RS-compliant Scheme program that allows you to write
- program code "as is" in your LaTeX or TeX source. It is particularly
- geared to the programming languages Scheme and Common Lisp, and has
- been tested in Chez Scheme, Common Lisp, MIT C Scheme, Elk, Scheme->C,
- SCM and UMB Scheme on Unix; and MIT C Scheme and SCM on MSDOS. The
- formatting of the code includes assigning appropriate fonts to the
- various tokens in the code (keywords, variables, constants, data), at
- the same time retaining the proper indentation when going to the
- non-monospace (non-typewriter) provided by TeX. SLaTeX comes with two
- databases that recognize the standard keywords/variables/constants of
- Scheme and Common Lisp respectively. These can be modified by the
- user using easy TeX commands. In addition, the user can inform SLaTeX
- to typeset arbitrary identifiers as specially suited TeX expressions
- (i.e., beyond just fonting them). The code-typesetting program SLaTeX
- is available by anonymous ftp from cs.rice.edu as the file
- public/dorai/slatex.tar.Z. Send bug reports to dorai@cs.rice.edu.
-
- SchemeWEB is a Unix filter that translates SchemeWEB source into LaTeX
- source or Scheme source. Originally developed for the Scheme dialect
- of Lisp, it can easily be used with most other dialects.
- Posted to comp.sources.unix, Volume 26, Issue 82, by John D.
- Ramsdell <ramsdell@linus.mitre.org>, under archive name schemeweb/part01.
-
- ----------------------------------------------------------------
- Subject: [1-11] Where can I get an implementation of Prolog in Scheme?
-
- Prolog in Scheme is a collection of macros that expand syntax for
- clauses, elations, and so on. It is written in Scheme and has support
- for delayed goals and interval arithmetic. It is known to run in Chez
- Scheme and in Elk, and is intended to be portable to other Scheme
- implementations. It relies on continuations, and so is not easily
- ported to Common Lisp. Available from the University of Calgary by
- anonymous ftp from
- fsa.cpsc.ucalgary.ca:pub/prolog1.2/prolog12.tar.Z
- Questions and comments may be addressed to Alan Dewar
- <dewar@cpsc.ucalgary.ca> or John Cleary <cleary@cpsc.ucalgary.ca>.
-
- An implementation of prolog for Chez Scheme is available by anonymous
- ftp from titan.rice.edu:public/slog.sh. It is a collection of macros
- that expand syntax for clauses, elations, and so on into pure Scheme.
- It should be easily portable to other Schemes. Its use of
- higher-order continuations is probably a major obstacle to porting it
- to Common Lisp. For more information, please contact the author:
- dorai@cs.rice.edu.
-
- ----------------------------------------------------------------
- Subject: [1-12] What does SICP, SCOOPS, R4RS, CAR, CDR, ... mean?
-
- Glossary of acronyms:
- CAR Originally meant "Contents of Address portion of Register",
- which is what CAR actually did on the IBM 704.
- CDR Originally meant "Contents of Decrement portion of
- Register", which is what CDR actually did
- on the IBM 704. Pronounced "Cudder".
- ANSI American National Standards Institute
- SICP Abelson and Sussman's book "Structure and
- Interpretation of Computer Programs".
- EOPL Essentials of Programming Languages
- SCOOPS An experimental object-oriented programming
- language for Scheme.
- R3RS Revised^3 Report on the Algorithmic Language Scheme.
- R4RS Revised^4 Report on the Algorithmic Language Scheme.
-
- ----------------------------------------------------------------
-
- ;;; *EOF*
-